package com.freewater.springboot.demo.web.mutipartandjson;

import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.ModelAndView;

@Controller
@RequestMapping("/user")
@Slf4j
public class UserController {

    @GetMapping("/index")
    public ModelAndView index() {
        return new ModelAndView("mutipartandjson/index");
    }

    /**
     * 这里展示post请求同时接收文件和json数据（其实把json数据也是当成文件从客户端上传过来，见对应的jsp页面），
     * 以此变相实现同时上传文件和提交json数据；
     * @param user 用户
     * @param file 文件
     * @return 用户
     */
    @PostMapping("/addUser")
    @ResponseBody
    public User addUser(@RequestPart("user") User user,
                        @RequestPart("file") MultipartFile file) {
        log.info("user: {}, fileName: {}, fileSize: {}",
                user, file.getOriginalFilename(), file.getSize());
        return user;
    }
}
